package drp.snowbell.entity;

public interface IPart extends IPersistent {

	/**
	 * 获取技能所属的实体
	 * 
	 * @return
	 */
	IEntity getEntity();

	/**
	 * 设置技能所属的实体
	 * 
	 * @param beanEntry
	 */
	void setEntity(IEntity entity);

	/**
	 * 设置技能里的属性值
	 * 
	 * @param prop
	 *            属性
	 * @param value
	 *            值
	 */
	void setValue(Property prop, Object value);

	/**
	 * 获取技能里的属性值.
	 * 
	 * @param prop
	 *            属性
	 * @return 值
	 */
	Object getValue(Property prop);

	/**
	 * 克隆一个组件
	 * 
	 * @return
	 */
	IPart cloneSkill();

	/**
	 * 获取技能的参数字符串
	 * 
	 * @return
	 */
	String getParameter();

	/**
	 * 设置技能的参数字符串
	 * 
	 * @param parameterString
	 *            参数字符串.一般为JSON字符串
	 */
	void setParameter(String parameterString);

	/**
	 * 在实体数据保存前触发
	 * 
	 */
	void onSaveStart();

	/**
	 * 在实体数据保存后触发
	 * 
	 */
	void onSaveEnd();

	/**
	 * 在实体数据加载完成触发
	 * 
	 */
	void onLoaded();
}
